package br.requisiteworks.modelo.dao;

import java.util.List;

import br.requisiteworks.modelo.Funcionario;
import br.requisiteworks.util.persistencia.DaoComum;
import br.requisiteworks.util.persistencia.ResultadoVazio;

/**
 * Interface para implementacao de uma DAO para entidades do tipo {@link Funcionario}
 * 
 * @author Mikhail Domanoski
 * 
 * @version 1, 07/05/2010
 * 
 */
public interface FuncionarioDao extends DaoComum<Funcionario> {

	/**
	 * Busca no banco de dados por um {@link Funcionario} de acordo com o numero passado
	 * @param numero o valor numerico da chave promaria do {@link Funcionario}
	 * @return O {@link Funcionario} que possui numero igual a <b>numero</b>
	 * @throws ResultadoVazio Caso o {@link Funcionario} nao seja encontrado
	 */
	public Funcionario select(int numero) throws ResultadoVazio;

	/**
	 * Busca no banco de dados por um {@link Funcionario}s dos quais o nome ou parte do nome contenha o parametro enviado
	 * @param nome Nome ou parte do nome do {@link Funcionario}
	 * @return Uma lista de {@link Funcionario}s dos quais seus nomes possuem a {@link String} passada como parametro
	 * @throws ResultadoVazio Caso nao seja encontrado nenhum {@link Funcionario}
	 */
	public List<Funcionario> select(String nome) throws ResultadoVazio;
}
